import { nearest_render } from "../../lib/nearest.mjs";

/**
 * 保存表格的滚动位置
 * @param {HTMLElement} gridview - 表格容器元素
 * @param {Object} template - 模板配置对象
 */
export function saveScrollPosition(gridview, template) {
  // 获取重渲染容器
  let rerender_container = nearest_render(gridview);
  if (template.id) {
    // 保存滚动位置到容器属性中
    rerender_container[`thin_gridview_${template.id}`] = {
      top: gridview.scrollTop,
      left: gridview.scrollLeft,
    };
  }
}

/**
 * 恢复表格的滚动位置
 * @param {HTMLElement} gridview - 表格容器元素
 * @param {Object} template - 模板配置对象
 */
export function restoreScrollPosition(gridview, template) {
  if (template.id) {
    // 获取重渲染容器
    let rerender_container = nearest_render(gridview);
    // 从容器属性中获取保存的滚动位置
    let pos = rerender_container[`thin_gridview_${template.id}`];
    if (pos) {
      // 恢复滚动位置
      gridview.scrollTo(pos);
    }
  }
}
